package com.sunnada.demo.log;

import java.io.IOException;
import java.sql.SQLException;
/**
 * @program: mybatisproject2
 * @description: 异常处理
 * @author: 李瑞益
 * @create: 2018-10-28 14:26
 **/
public class ExeceptionUtil {

    /**
     * 判断该异常属于什么异常
     * @param e
     * @return
     */
    public static String handle(Throwable e) {
        String message = "";
        String exceptionName = e.getClass().getName();
        // 在这里判断异常，根据不同的异常返回错误。
//        if (exceptionName.equals(DataAccessException.class.getName())) {
//            message = "数据库操作失败";
////            logger.error("数据库操作失败！");
//        } else
            if (exceptionName.equals(NullPointerException.class.getName())) {
            message = "空指针异常！";
//            logger.error("空指针异常！");
        } else if (exceptionName.equals(IOException.class.getName())) {
            message = "IO异常！";
//            logger.error("IO异常！");
        } else if (exceptionName.equals(ClassNotFoundException.class.getName())) {
            message = "指定的类不存在！";
//            logger.error("指定的类不存在！");
        } else if (exceptionName.equals(ArithmeticException.class.getName())) {
            message = "数学运算异常！";
//            logger.error("数学运算异常！");
        } else if (exceptionName.equals(ArrayIndexOutOfBoundsException.class.getName())) {
            message = "数组下标越界！";
//            logger.error("数组下标越界！");
        } else if (exceptionName.equals(IllegalArgumentException.class.getName())) {
            message = "方法的参数错误！";
//            logger.error("方法的参数错误！");
        } else if (exceptionName.equals(ClassCastException.class.getName())) {
            message = "类型强制转换错误！";
//            logger.error("类型强制转换错误！");
        } else if (exceptionName.equals(SecurityException.class.getName())) {
            message = "违背安全原则异常！";
//            logger.error("违背安全原则异常！");
        } else if (exceptionName.equals(SQLException.class.getName())) {
            message = "操作数据库异常！";
//            logger.error("操作数据库异常！");
        } else if (exceptionName.equals(NoSuchMethodError.class.getName())) {
            message = "方法未找到！";
//            logger.error("方法未找到");
        } else if (exceptionName.equals(InternalError.class.getName())) {
            message = "Java虚拟机发生了内部错误！";
//            logger.error("Java虚拟机发生了内部错误");
        } else {
            message = e.getMessage();
        }
        return message;

    }
}
